package com.zmn.oms.model.bo.orderamount;

import com.zmn.dms.common.dto.preferential.dro.PromBaseRuleDRO;
import com.zmn.oms.model.entity.discount.OrderDiscount;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.List;
import java.util.Set;

/**
 * 类描述：优惠计算
 *
 * @author heciqi
 * @date 2020-06-03 14:08:02
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class OrderDiscountCalcBO implements Serializable {

	/**
	 * 优惠总金额
	 */
	private Integer discountAmount;

	/**
	 * 优惠预付金额
	 */
	private Integer discountPrepayAmount;

	/**
	 * 仅用于前端使用，做交互处理
	 */
	private Integer afterPromotionAmount;

	/**
	 * 调用发起者，1系统，2用户输入，3 运营后台输入
	 * 用于验券核销时的参数
	 */
	private Integer invoker;

	/**
	 * 所有优惠列表
	 */
	private List<OrderDiscount> orderDiscountList;

	/**
	 * 核销列表
	 */
	private List<OrderDiscount> receiptConsumeDiscountList;

	/**
	 * 归还列表
	 */
	private List<OrderDiscount> backDiscountList;

	/**
	 * 规则链组合：所有有效链组
	 * 仅给saas端使用
	 */
	private List<Set<PromBaseRuleDRO>> linkOfValidAll;

	/**
	 * 强制验券，1否，2是
	 */
	private Integer compulsoryFlag;
}
